Сайт Информационных Технологий

Система поддержки принятия решения c нечеткой базой данных для

портфеля ценных бумаг

Д.С. Смолко, И.Г. Черноруцкий

Санкт-Петербургский государственный технический университет

Abstract- Development of a decision support system, where invocation of fuzzy rules is combined with fuzzy database querying mechanism, allows us to derive a new interpretation of the model for decision support, in which relationships between parameters of the models are interpolated. Fuzzy descriptions and linguistic quantifiers as prerequisites to fuzzy querying mechanisms are being considered, which allow us to arrive at the decision result with a maximum matching degree.

Анализ современного состояния методов автоматизированного управления в интеллектуальных системах для поддержки принятия решений [1] показал, что применение алгоритмов нечеткой логики и нечетких правил позволяет иметь ряд преимуществ по сравнению с обычной (Булевской) логикой. При мягких вычислениях необходимо наличие меньшего количества нечетких правил, чем потребовалось бы четких правил - аналогов, что способствует увеличению быстродействия системы, а также появляется адаптивность к изменению набора входных значений.

Для решения задачи управления портфелем ценных бумаг в реальном времени в системе [1] заданы нечеткие множества и переменные с функциями принадлежности; имеется логический блок принятия решения, состоящий из набора нечетких правил “если...то...”, которые работают с нечеткими множествами; задан принцип совмещения - композиции правил; определен закон дефузификации нечетких переменных в числовые значения. В системе использован стандартный интерпретатор нечетких правил, для которого составлена программа на языке описания нечетких правил; разработан модуль пользовательского интерфейса на основе электронных таблиц Excel. Модуль отвечает за ввод/вывод данных и визуализацию результатов работы системы. На основе применяемой модели рынка ценных бумаг создан блок сопряжения, рассчитывающий коэффициенты-индикаторы модели, являющиеся входными данными системы нечетких правил.

Однако, реализации подобных систем поддержки принятия решений характеризуются неполнотой, т.е. неточностью, неопределенностью и нечеткостью информации, содержащейся в их базе данных и базе знаний. При этом цель управления часто содержит нечеткие интервальные, либо неопределенные знания с неоднозначной оценкой истинности ввиду неполноты информации. Хотя информация в базе данных может быть самая четкая (цены с точностью до цента), а вот элементарный запрос для поддержки принятия решения “ распечатать данные про акции с ценой около 150 долларов ” является нечетким запросом. В таких случаях механизмом извлечения информации из базы знаний для принятия решений является механизм нечетких запросов, который и представлен в данной работе.

Практическая реализация нечеткого запроса потребовала разработки модели, метода и алгоритма нечеткого запроса, на основе аппарата нечеткого запроса в MS Access при помощи FQUERY. Простота и интуитивность интерфейса даже для неискушенного пользователя, определили применение для этой цели коммерческой базы данных (Microsoft Access) с надстройкой FQUERY, позволяющей обрабатывать нечеткие запросы. Предлагаемая надстройка поддерживает запросы типа “найти (все) записи, такие что”, большинство”,“почти все”, “намного больше половины”- здесь может быть любой иной подходящий лингвистический квантификатор. Например, “ равны 5”, “ больше 10”, “намного меньше чем 100” и т.д., как предложено Kacprzyk и Ziolkowski [2,3 ], и Kacprzyk, Zadrozny, Ziolkowski [4].

Проблема состоит в том, как подключить в классический язык запросов нечеткие термины такие, как “низкое значение”, “намного более”, “большинство” и другие. То есть, как расширить синтаксис и семантику запроса; как сделать эти нечеткие термины доступными для пользователя. Четкий и нечеткий запросы к базе данных Access имеют структуру, представленную на рисунке 1.

 

Четкий запрос

Нечеткий запрос

SELECT <список полей>

WHERE

условие11 AND

условие12 AND ... AND

условие1k

OR ... OR

 

условиеn1 AND

условиеn2 AND ... AND

условиеnk

<запрос> ::=

SELECT <список полей>

FROM <список таблиц>

WHERE <нечеткий квантификатор>

<цепочка подусловий> ;

<цепочка подусловий> ::=

<подусловие> |

<подусловие> OR <цепочка подусловий>

<подусловие> ::=

<нечеткий квантификатор><коэффициент значимости>

<цепочка атомарных условий>

<цепочка атомарных условий> ::=

<атомарное условие> |

<атомарное условие> AND <цепочка атомарных

условий>

<атомарное условие> ::=

<атрибут> = <нечеткое значение> |

<атрибут> = <нечеткое отношение> <атрибут>|

<атрибут> = <нечеткое отношение> <число>|

<иные формы в соответствии с синтаксом

запроса Microsoft Access>

<атрибут> ::= <числовое поле>

<нечеткий квантификатор> ::= <таг ОВА>

<имя квантификатора> |

<таг ОВА> ::= OWA

Рис.1. Сравнение структур четкого и нечеткого запроса к базе данных MS Access.

 

Определения запроса, цепочки подусловий, подусловия, цепочки атомарных условий, атрибутов и нечетких квантификаторов приводятся ниже.

<атрибут> - числовое поле для использования в нечетком запросе. Для каждого атрибута задается наименьшее (LL) и наибольшее (UL) предельное значение, что определяет интервал возможных значений и используется для масштабирования значений при расчете степени соответствия с применяемым нечетким значением или со степенью принадлежности в нечетком отношении.

<нечеткое значение> - эквивалент неточных лингвистических термов (например, “большой” в “большой процент”) задается трапециевидной функцией принадлежности на [-10;10] для избежания зависимости от контекста.

<нечеткое отношение> - нечеткое отношение (“немножко больше чем”) задается бинарным нечетким отношением с трапециевидной функцией принадлежности. Оба операнда могут быть атрибутами или числами. Для двух атрибутов разница из истинных значений D линейно приводится к интервалу [-10;10], сохраняя интервал изменений, то есть масштабируется интервал [LL1-UL2; UL1-LL2] на [-10;10]. За степень соответствия полагают степень принадлежности D в нечетком отношении. Если вторым операндом является число, его интервалом изменения полагают интервал изменения первого, нечеткого параметра и степень соответствия вычисляют аналогично.

Например, если атрибут ЦЕНА с интервалом изменения (0, 1000000), а нечеткое отношение ОКОЛО с трапециевидной функцией принадлежности ОКОЛО(-2, -1, 1, 2), то нечеткий запрос “ЦЕНА ОКОЛО 250000”, а у записи значение цены равно 260000, тогда этот запрос имеет параметрами два атрибута с одним и тем же интервалом изменения [0; 1000000]. Значение 10000 (полученное как разница 260000-250000) масштабируется на интервал [-10;10], что дает 0.1. После чего рассматриваем степень принадлежности для нечеткого отношения 0.1, которая есть искомая степень соответствия; и тогда: для ЦЕНА=400000, степень соответствия равна 0.5 .

<нечеткий квантификатор> <коэффициент важности><таг ОВА> - нечеткие квантификаторы используются в утверждениях, где “большинство (Q) из параметров запроса должны быть выполнены”. Для вычисления значения этого запроса мы масштабируем четкое кардинальное число (=мера количества) нечеткого множества выполненных подусловий на интервал [0;10]. Использование коэффициента важности позволяет различать между главными подусловиями, выполнение которых необходимо для сохранения смысла понятия, представленного данным запросом, и второстепенными подусловиями, не столько важными для смысла этого понятия. Более того, поддерживаются ОВА-операторы [5].

При встраивании надстройки FQUERY в среду Access были решены две проблемы - размещение атрибутов нечетких значений на подобающих местах и возможность построить запрос с использованием нечетких элементов. FQUERY предлагает меню терминов в виде тулбара. Для каждой категории нечетких элементов – нечетких значений, нечетких отношений, квантификаторов, значимостей- имеется кнопка. При помощи FQUERY пользователь может: задавать новые атрибуты, задавать нечеткие элементы и автоматически вставлять их в клетку запроса, и стартовать запрос на выполнение. Все операции производятся нажатием кнопок из меню. Если запрос не содержит нечетких элементов, то запуск запроса из FQUERY выдает обычный результат. Все происходит “на лету”, поэтому пользователь не замечает преобразованный запрос, на котором основываются результаты.

Применительно к базе данных ценных бумаг это выглядит следующим образом. По каждой ценной бумаге запись содержит цену, price-to-earnings ratio (отношение цены к прибыли), а также average yield (усредненный доход) за последний период (квартал). Мы ищем ценную бумагу для покупки с доходностью 15%, цена к прибыли 11, не дороже $150, что может быть выражено при помощи запроса FQUERY. Сборка запроса представлена ниже:

SELECT NAME, PRICE, PE, AY FROM STOCK

WHERE ((PRICE=[FfA_FR Not much’greater than|150]) AND (PE=[FfA_FR Around|11]) AND (AY=[FfA_FR Around|15])).

Без нечетких элементов запрос выглядел бы так:

SELECT NAME, PRICE, PE, AY FROM STOCK

WHERE ((PRICE<=150) AND (PE=11) AND (AY=15))

Этот четкий запрос не выдает ни одной записи, то есть является пустым!

По результатам тестового прогона системы можно сделать вывод, что запись с наибольшей степенью соответствия часто отсутствует в результатах четкого запроса. Например,

если цена бумаги немного превышает $150, то она не включается в результаты поиска, хотя для большинства игроков на бирже это превышение не является определяющим. При четком подходе совсем непросто обойти это ограничение: если мы поместим чуть более высокую цену в запрос, мы можем упустить очень привлекательные ценные бумаги с еще чуть более высокой ценой. Поэтому, истинная проблема состоит во внутренней нечеткости понятия запроса, а надстройка FQUERY предлагает быстрый и конструктивный подход.

Итак, создание системы поддержки принятия решений в данной работе, в которой механизм вычисления нечетких правил соединен с механизмом нечетких запросов, позволяет получить новую интерпретацию модели принятия решения, в которой интерполируются связи между входными переменными.

Интерполяция происходит при помощи масштабирования полного интервала изменений входных переменных на известный интервал фузификации, и далее, при поочередном отражении результата на трапециевидную функцию принадлежности всех лингвистических термов системы, методом перебора определяется результат с максимальной функцией соответствия.

Именно поэтому вышеприведенные методы Fuzzy Logic несколько мистически помогают осуществлять поддержку принятия решения, в сущности позволяя расширить область поиска в соответствии с изначально заданными человеком ограничениями.

Литература

  1. Смолко Д.С.,Черноруцкий И.Г. Система поддержки принятия решения для портфеля ценных бумаг//Сборник докладов I Международной конференции по мягким вычислениям и измерениям (SCM-98), Санкт-Петербург, 1998, том 2, с.231-234 .
  2. Kacprzyk J., Ziolkowski A. “Retrieval from Bases using Queries with Fuzzy Linguistic Quantifiers”. Fuzzy Logic in Knowledge Engineering. H. Prade, C.V.Negoita, Verlag TUV Rheinland, Cologne, 1986.
  3. Kacprzyk J., Ziolkowski A. “Database Queries with Fuzzy Linguistic Quantifiers”. IEEE Transactions on Systems, Man, and Cybernetics. SMC-16, 1986, р. 474-479.
  4. Janusz Kacprzyk, Slawomir Zadrozny, Andrzej Ziolkowski.FQUERY III+:a "human-consistent" database querying system based on fuzzy logic with linguistic quantifiers. “Information Systems”, vol. 14(6), р.443-453, (1989).
  5. Yager, R.R. “On Ordered, Weighted Averaging Operators in Multicriteria Decision Making”. IEEE Transactions on Systems, Man, and Cybernetics. SMC-18, 1988, р. 183-190.

Site of Information Technologies
Designed by  inftech@webservis.ru.